#pragma once

namespace mg
{
	class Image
	{
	public:
		Image();
		virtual ~Image();

		bool load(const char* filename, int desired_channels = 0, bool flip_vertically = false);
		void unLoad();

		unsigned int getWidth();
		unsigned int getHeight();
		unsigned int getChannels();
		unsigned int getLineDataSize();
		unsigned int getDataSize();
		BYTE* getLineData(unsigned int index);
		BYTE* getData();

	protected:
		std::string m_filename;
		unsigned int m_width;
		unsigned int m_height;
		unsigned int m_channels;
		BYTE* m_data;

		bool load_mu_oz(const char* filename, int desired_channels);
	};

}

